<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ajax请求函数封装</title>
</head>
<body>
  <button id="btn">发送ajax请求</button>
  <script>
    function ajax(url) {
      return new Promise((resolve, reject) => {
        // 创建xhr对象
        const xhr = new XMLHttpRequest()
        // 指定请求需要的信息(初始化请求/打开连接)
        xhr.open('GET', url, true)
        // 绑定监听
        xhr.onreadystatechange = () => {
          if (xhr.readyState===4) { //  请求完成
            if (xhr.status>=200 && xhr.status<=299) { // 成功
              resolve(JSON.parse(xhr.responseText))
            } else { // 失败
              reject(new Error('请求失败 status: ' + xhr.status))
            }
          }
        }
        // 发送请求
        xhr.send()
      })
    }

    document.getElementById('btn').onclick = function () {
      ajax('/3_web api/product2.json').then(
        value => {
          console.log(value)
        },
        error => {
          alert(error.message)
        }
      )
    }
  </script>
</body>
</html>